#ifndef _GESTION
#define _GESTION
#include "personnage.h"
#include <SDL/SDL.h>
#include "gestion.h"
#include "terrain.h"

#define NBJOUEURMAX 4


typedef struct {
int Numero; // numero du joueur
int Courrant; // booleen 1 si le joueur est le jouer courrant, 0 sinon
int NbUnite;
int NbUniteJouee;
int Humain; //booleen 1 si le joueur est Humain 0 sinon
}_joueur;

/*typedef struct {
_personnage ListeDeJoueur[NBJOUEURMAX]; // contient les joueurs, NULL si le nombre de joueurs est inférieur au nombre de joueur max
}_liste_joueur;*/


void Convert_Clic_Case(SDL_Event Event, int* xy); // fonction finalement exportée dans interaction T P
 /*dans la fonction de gestion du tour xy contiendra les coordonnée de la case cliquée*/

_joueur* Init_Joueur ( int Numero);
void Libere_Joueur ( _joueur* Joueur);

int Get_Numero (const _joueur* Joueur);
int Get_Courrant (const _joueur* Joueur);
int Get_NbUnite (const _joueur* Joueur);
int Get_NbUniteJouee (const _joueur* Joueur);
int Get_Humain (const _joueur* Joueur);

void Set_Numero (_joueur* Joueur, const int Numero);
void Set_Courrant (_joueur* Joueur, const int Courrant );
void Set_NbUnite (_joueur* Joueur, int const NbUnite);
void Set_NbUniteJouee (_joueur* Joueur, int const NbUniteJouee);
void Set_Humain (_joueur* Joueur, int const Humain);

int Gagner (_joueur ListeJoueur[NBJOUEURMAX] ); // renvoie le numéro du joueur gagnant, 0 sinon
void Tour (_joueur* Joueur, _terrain* Terrain, _personnage* ListePersonnage ); // gere le tour du joueur,met à jours le nb unite jouée
void TourIA(_joueur* Joueur, _terrain* Terrain, _personnage* ListePersonnage );
/* _personnage* SelectionPersonnage ( int Joueur, SDL_Event Event); inutile ? */

void Set_Debut_Tour ( _terrain* Terrain,_personnage* ListePersonnage); // dans le main, Liste contiendra l'ensemble des personnages


#endif
